package com.ilink.teacherservice.mapper.Screen;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

/**
 * 数据访问层接口，用于与数据库交互获取专业图表相关数据。
 *
 * 此方法用于根据课程 ID 获取专业分类和对应的数量。
 *
 * @return 包含专业分类（键为'major_class'）和数量（键为'count'）的映射列表。
 */
@Mapper
public interface MajorChartMapper {

    /**
     * 此方法通过连接'tb_user'表和'major_reflection'表，以获取用户的专业信息，
     * 并根据专业分类进行分组统计数量。
     *
     * @return 包含专业分类和数量的映射列表，其中每个映射的键为'major_class'和'count'，分别代表专业分类和对应的数量。
     */
    @Select({
            "SELECT major_class, COUNT(*) AS count FROM  tb_user u JOIN major_reflection mr ON mr.concrete_major=u. userMajor ",
            "GROUP BY major_class"
    })
    List<Map<String, Object>> getMajorChart();


}